Intent分成了Explicit Intent(顯式)
、Implicit Intent(隱式)
兩種顯式
通常會用來啟動特定的Activity隱式
通常用來調用其他的功能
因為顯式
比較常會用到所以這裡會著重介紹顯式
顯式
通常會用在跳轉頁面上
若是需要使用跳轉頁面的話則要到MainActivity
裡去添加程式碼
現在先假設當前所在的頁面是MainActivity
要跳轉到的頁面叫做SecondActivity
Intent intent = new Intent(MainActivity.this, SecondActivity.class);
利用這行可以從當前的Activity跳轉到目標Activity
若需要修改的話MainActivity.this
是當前的ActivitySeecondActivity.class
是我們要跳轉到的目標Activity,也就是你想要跳轉到的頁面
只要照著修改就好了
startActivity(intent);
要跳頁面之前必須要先啟用你要跳轉的那個目標Activity
這行就是用來啟用你要跳轉的目標Activity的方法
當這行程式碼執行時,會根據程式碼對應的Activity去啟動
(這裡是SecondActivity
)
只要利用這兩行就可以實現最基本的跳轉頁面了
當然如果只有這樣就只能實現最基本的頁面跳轉,所以如果有什麼資料要從MainActivity
丟到SecondActivity
裡來做顯式的話光是這兩行程式還不夠
假設我現在要傳送的資料變數名叫做bmi_rd
且它是一個double
的資料
若是要完成傳值的話還需要在MainActivity
裡加上這行程式
intent.putExtra("BMI_EXTRA", bmi_rd);
它會將bmi_rd
裡的值丟到名為BMI_EXTRA
的key值裡putExtra()
是用來將資料附加到Intent中,讓它之後能夠在不同的Activity之間傳遞資料的BMI_EXTRA
是用來識別數據的key值
它類似於一個標籤,在目標Activity裡需要用到它來抓取存在Intent中的資料bmi_rd
是你要傳遞的資料變數名
(在這裡它是一個double型態的值)
接下來的程式碼是如何在SecondActivity
接收這數據
Intent intent = getIntent();
double bmi_rd = intent.getDoubleExtra("BMI_EXTRA", 0.0);
getIntent()
這行程式碼是用來獲取Intent裡的資料的getDoubleExtra()
是用來從Intent中取得之前使用putExtra()
傳遞的 double
資料的
(需要注意的是這行是需要依照資料型態去修改和使用的指令,剩下的可以到這裡去了解更多Intent)BMI_EXTRA
是key值
,是用來抓取你在之前的Activity裡傳遞的資料的0.0
只是一個預設值,當出現找不到對應的資料的狀況時,就會返回這個預設值,以防出錯
Intent介紹就到這邊,只要會這幾行程式碼就可以實現跳轉頁面了
下篇會開始介紹一些元件的自定義